import base64

import httpx
from langchain_core.messages import HumanMessage
from langchain_openai import ChatOpenAI

imge_url = "https://...."
## 使用httpx库，将一个url图片地址，返回一个图片流。
image_date = base64.b64encode(httpx.get(imge_url).content).decode("utf-8")
model = ChatOpenAI(model="gpt-4o")
message = HumanMessage(
    content=[{"type": "text", "text": "用中文描述这张图片中的天气"},
             {
                 "type": "image_url",
                 ## base64 ，大部分模型都是支持的；但如果是url的话，可以些模型不支持
                 "image_url": {"url": f"data:image/jpeg;base64,{image_date}"},
             },
             ],
)
response = model.invoke([message])
print(response.content)

"""
国外的大模型，用国外的图片地址；guo
"""
message_url = HumanMessage(
    content=[{"type": "text", "text": "用中文描述 这张图片中的天气"},
             {
                 "type": "image_url",
                 ## base64 ，大部分模型都是支持的；但如果是url的话，openai支持，但可以些模型不支持
                 "image_url": {"url": image_date},
             },
             ],
)
